The present invention relates generally to computer systems, and more particularly to methods for providing computerized assistance to users of computer systems.
Computer systems have evolved over the years to provide substantial levels of user assistance. On such form of assistance is the help function available in many operating systems and application programs. For example, release 7.0 of the Macintosh operating system of Apple Computer, Inc. provides context sensitive "balloon help" where a user can learn more about an object represented on a computer screen by simply pointing to the object. Microsoft Word 5.0 from Microsoft, Inc. provides a help menu which allows a user to select a help topic. Other systems, such as dbase IV from Borland International, will ask users if they need help if it appears that they need help.
Conventional help functions are useful adjuncts to system and application software. They provide a convenient access to helpful information without requiting a user to study a reference manual. However, such help functions tend to be quite limited. They typically are only useful for a limited range of topics, and users must often know the right questions to ask to access the information. Furthermore, conventional help functions are merely passive providers of information and do not aid a user in accomplishing a desired task.
Another form of computerized assistance are the utilities known as "macros" which can provide user requested services. Macros often have a "record" function which allows a series of keystrokes to be recorded for subsequent playback. By using the record function, a frequently used sequence of commands can be executed by evoking the macro.
A powerful feature of many macro programs is the ability to program macro functions including loops and conditionals. This permits the macro to adapt to user inputs and the system environment to flexibly perform automated tasks. While macros are powerful tools, their capabilities tend to be limited and they must be evoked by the user.
Both help and macro functions fall short of providing intelligent or "deductive" assistance to computer users. The help function is essentially just a convenient way for a user to access reference information or information concerning system status. The macro function is often no more than an automated playback of a string of commands. Truly deductive assistance would anticipate a user's needs and intentions and satisfy those needs and intentions with little or no user input.
To be truly useful, deductive assistance should be fully integrated throughout a computer system's operating and application programs. No such deductive assistance process has heretofore been known. One reason for this is that most general purpose computers do not have a high degree of integration between various application programs and between the application programs and the operating system. Therefore, activity in one application program is unlikely to have an impact upon or modify another application program, limiting the range of useful activities that a deductive assistant could provide. Nonetheless, deductive assistance would be useful in the general computer environment if it were available.
A relatively new type of computer which is well suited for deductive assistance is the pen-based computer system. A pen-based computer system is typically a small, hand-held computer where the primary method for inputting data includes a "pen" or stylus. A pen-based computer system is commonly housed in a relatively flat enclosure, and has a dual-function display assembly providing a viewing screen along one of the planar sides of the enclosure. The dual-function display assembly serves as both an input device and an output device. When operating as an input device, the display assembly senses the position of the tip of a stylus on the viewing screen and provides this positional information to the computer's central processing unit (CPU). Some display assemblies can also sense the pressure of the stylus on the screen to provide further information to the CPU. When operating as an output device, the display assembly presents computer-generated images on the screen.
The dual-function display assemblies of pen-based computer systems permit users to operate the computer as a computerized notepad. For example, graphical images can be input into the pen-based computer by merely moving the stylus on the surface of the screen. As the CPU senses the position and movement of the stylus, it generates a corresponding image on the screen to create the illusion that the stylus is drawing the image directly upon the screen, i.e. that the stylus is "inking" an image on the screen. With suitable recognition software, text and numeric information can also be entered into the pen-based computer system in a similar fashion.
Besides serving as a notepad, pen-based computers can provide a number of useful functions, such as serving as an address book, an appointment calendar, a to-do list, etc. These functions can be tightly integrated with the operating system of the computer, permitting information input into one function to impact upon another function. In such an environment, deductive assistance would be a valuable addition to the functionality and value of the computer system.